import request from '@/utils/request';

/**
 * 任务管理相关API
 */
const taskApi = {
  /**
   * 获取任务列表
   * @param {Object} params - 查询参数
   * @param {number} params.page - 页码
   * @param {number} params.page_size - 每页大小
   * @param {string} params.status - 任务状态过滤
   * @param {string} params.priority - 优先级过滤
   * @param {number} params.responsible_person_id - 负责人ID过滤
   * @param {string} params.keyword - 搜索关键词
   * @returns {Promise} - 返回任务列表数据
   */
  getTasks: (params) => {
    return request({
      url: '/tasks',
      method: 'get',
      params
    });
  },

  /**
   * 获取任务详情
   * @param {number} taskId - 任务ID
   * @returns {Promise} - 返回任务详情数据
   */
  getTaskDetail: (taskId) => {
    return request({
      url: `/tasks/${taskId}`,
      method: 'get'
    });
  },

  /**
   * 创建任务
   * @param {Object} data - 任务创建数据
   * @returns {Promise} - 返回创建的任务数据
   */
  createTask: (data) => {
    return request({
      url: '/tasks',
      method: 'post',
      data
    });
  },

  /**
   * 更新任务
   * @param {number} taskId - 任务ID
   * @param {Object} data - 任务更新数据
   * @returns {Promise} - 返回更新后的任务数据
   */
  updateTask: (taskId, data) => {
    return request({
      url: `/tasks/${taskId}`,
      method: 'put',
      data
    });
  },

  /**
   * 更新任务状态
   * @param {number} taskId - 任务ID
   * @param {Object} data - 状态更新数据
   * @param {string} data.status - 新状态
   * @returns {Promise} - 返回更新后的任务数据
   */
  updateTaskStatus: (taskId, data) => {
    return request({
      url: `/tasks/${taskId}/status`,
      method: 'put',
      data
    });
  },

  /**
   * 更新任务进度
   * @param {number} taskId - 任务ID
   * @param {Object} data - 进度更新数据
   * @param {number} data.progress - 新进度值
   * @returns {Promise} - 返回更新后的任务数据
   */
  updateTaskProgress: (taskId, data) => {
    return request({
      url: `/tasks/${taskId}/progress`,
      method: 'put',
      data
    });
  },

  /**
   * 删除任务
   * @param {number} taskId - 任务ID
   * @returns {Promise} - 返回删除结果
   */
  deleteTask: (taskId) => {
    return request({
      url: `/tasks/${taskId}`,
      method: 'delete'
    });
  }
};

export default taskApi;